package config

import (
	"fmt"
	"github.com/sirupsen/logrus"
	"github.com/spf13/viper"
)

const (
	DateFormat = "2006-01-02 15:04:05"
)

var (
	ServerPort string
	JwtSecret  string
	JwtExpire  int64
)

func init() {
	viper.SetConfigFile("./config.yaml")
	// 查找并读取配置文件
	err := viper.ReadInConfig()
	// 处理读取配置文件的错误
	if err != nil {
		panic(fmt.Errorf("Fatal error config file: %s \n", err))
	}
	//服务器配置
	serverConfig()
	//jwt配置
	jwtConfig()
	//配置log
	logConfig()
}

func serverConfig() {
	ServerPort = viper.GetString("server.port")
}

func jwtConfig() {
	JwtSecret = viper.GetString("jwt.secret")
	JwtExpire = viper.GetInt64("jwt.expireTime")
}

func logConfig() {
	//切换为json格式日志
	logrus.SetFormatter(&logrus.JSONFormatter{
		TimestampFormat: DateFormat,
	})
	//增加文件名和行号
	logrus.SetReportCaller(true)
	//读取配置
	logLevel := viper.GetString("log.level")
	if logLevel == "debug" {
		//修改日志级别 debug
		logrus.SetLevel(logrus.DebugLevel)
	} else {
		//修改日志级别 info
		logrus.SetLevel(logrus.InfoLevel)
	}
}
